//package com.wonders.app.file.controller;
//
//import com.alibaba.fastjson.JSONArray;
//import com.wonders.app.bean.FileBean;
//import com.wonders.app.utils.FTPUtils;
//import com.wonders.app.utils.FileUtils;
//import com.wonders.app.utils.JwtUtils;
//import com.wonders.common.exception.RRException;
//import com.wonders.common.utils.R;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.context.properties.ConfigurationProperties;
//import org.springframework.web.bind.annotation.RequestBody;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.ResponseBody;
//import org.springframework.web.bind.annotation.RestController;
//import org.springframework.web.multipart.MultipartFile;
//
//import javax.servlet.http.HttpServletResponse;
//import java.util.Date;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
//
//@ConfigurationProperties(prefix = "middle.dir")
//@RestController
//@RequestMapping("/file")
//public class FileController {
//
//    @Autowired
//    FTPUtils ftpUtils;
//    @Autowired
//    JwtUtils jwtUtils ;
//    private String name ;
//
//
//
//
//    @RequestMapping("/listFiles")
//    public R listFiles(@RequestBody FileBean fileBean) {
//
//        JSONArray jsonArray = new JSONArray( );
//        List<String> listDir = fileBean.getListDir();
//        for (String dir:listDir) {
//            System.out.println("节点名字"+dir);
//            try {
//                JSONArray jsonArray1 = FileUtils.listFiles(dir);// 下载一次，对应的节点的文件
//                System.out.println(jsonArray1.size());
//                jsonArray.addAll(jsonArray1);
//
//            } catch (Exception e) {
//                e.printStackTrace();
//            }
//        }
//
//        Map<String, Object> map = new HashMap<>();
//        System.out.println("获取所有文件");
//        map.put("result", jsonArray);
//
////        try {
////            JSONArray objects = FileUtils.listFiles("/middle/");
////
////            map.put("result", objects);
////        } catch (Exception e) {
////            throw new RRException("获取文件异常");
////        }
//
//        return R.ok(map);
//    }
//
//
//
//    /**
//     * SpringMVC文件上传
//     *
//     * @return MultipartFile upload ，
//     * <p>
//     * HttpServletRequest request 这个参数是，网络请求封装的。
//     * <p>
//     * MultipartFile 其实是Spring对文件流进行了封装，能获取长度，能转换成byte数组，能获取输入流，能直接写入文件.
//     * 包含二进制数据+文件名称
//     */
//    @RequestMapping("/fileUpload")
//    public R fileupload(MultipartFile file) {
//        System.out.println("上传文件"+name);
//
//        String originalFilename = file.getOriginalFilename();
//
//        Map<String, Object> map = new HashMap<>();
//        try {
//            FileUtils.upload(file,originalFilename);
//            map.put("result", "true");
//        } catch (Exception e) {
//            throw new RRException("上传文件异常"+e.getMessage());
//        }
//        return R.ok(map);
//    }
//
//
//    /**
//     *  下载文件
//     * @param fileBean
//     * @param response
//     * @return
//     */
//    @RequestMapping("/fileDownload")
//    public @ResponseBody R fileDownload(@RequestBody FileBean fileBean, HttpServletResponse response) { //读出文件，返回文件流，下载
//
//              FileUtils.downloadOneFile(fileBean.getFileName());
//        return FileUtils.downloadStream(fileBean.getFileName(),response);
//
//    }
//
//
//    /**
//     * 删除文件
//     * @return
//     */
//    @RequestMapping("/fileDelete")
//    public R fileDelete(@RequestBody FileBean fileBean) {
//        Map<String, Object> map = new HashMap<>();
//        System.out.println("目录文件...");
//
//       FileUtils.delete(fileBean.getFileName());
//
//        return R.ok(map);
//    }
//
//
//    /**
//     * 重命名
//     * @return
//     */
//    @RequestMapping("/fileRename")
//    public R fileRename(@RequestBody FileBean fileBean) {
//        Map<String, Object> map = new HashMap<>();
//        System.out.println("重命名文件...");
//
//        FileUtils.rename(fileBean.getFileName(),fileBean.getFileNewName());
//
//        return R.ok(map);
//    }
//
//
//
//
//
//    public String getName() {
//        return name;
//    }
//
//    public void setName(String name) {
//        this.name = name;
//    }
//
//}
